/***************************************************************************
 *   Copyright (C) 2009 by jrs0ul                                          *
 *   jrs0ul@gmail.com                                                      *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/

#ifndef _ASSET_BROWSER_H
#define _ASSET_BROWSER_H

#include "../../src/models/rm2.h"
#include "../../src/TextureLoader.h"
#include "../../src/gui/Button.h"

class AssetBrowser{
    int x;
    int y;
    int width;
    int height;
    int itemSize;
    unsigned itemCount;
    unsigned pageSize;
    unsigned currentPage;

    float * angles;

public:

    Button prevPage;
    Button nextPage;

    AssetBrowser(){
        angles = 0;
    }

    void build(int _x, int _y,
               int w, int h,
               int iSize, unsigned iCount);

    //draws subsets from model collection
    void drawAssets(SubsetCollection& models, PicsContainer& pics,
              unsigned textureIndex,
              int mouseX, int mouseY,
              int selectedAsset);
    //draws tiles from tileset
    void drawTiles(PicsContainer& pics, unsigned textureIndex,
                   int mouseX, int mouseY,
                   int selectedAsset);

    //when somebody clicks with mouse;
    //returns selected asset
    int onMouseUp(int mouseX, int mouseY);
    void onMouseMove(int mouseX, int mouseY);
    void destroy(){if (angles){free(angles); angles = 0;}}
};

#endif //_ASSET_BROWSER_H

